home *** CD-ROM | disk | FTP | other *** search
/ PC World 2007 January / PCWorld_2007-01_cd.bin / v cisle / autoit / autoit-v3.2.0.1-setup.exe / Include / Process.au3 < prev    next >
Text File  |  2006-06-20  |  4KB  |  106 lines

  1. ; Include Version:1.59  (04/20/2006)
  2. #include-once
  3. ; ------------------------------------------------------------------------------
  4. ;
  5. ; AutoIt Version: 3.0
  6. ; Language:       English
  7. ; Description:    Functions that assist with process management.
  8. ;
  9. ; ------------------------------------------------------------------------------
  10.  
  11. ;===============================================================================
  12. ;
  13. ; Description -   Returns a string containing the process name that belongs to a given PID.
  14. ; Syntax -        _ProcessGetName( $iPID )
  15. ; Parameters -    $iPID - The PID of a currently running process
  16. ; Requirements -  None.
  17. ; Return Values - Success - The name of the process
  18. ;                 Failure - Blank string and sets @error
  19. ;                       1 - Process doesn't exist
  20. ;                       2 - Error getting process list
  21. ;                       3 - No processes found
  22. ; Author(s) -     Erifash <erifash [at] gmail [dot] com>, Wouter van Kesteren.
  23. ; Notes -         Supplementary to ProcessExists().
  24. ;===============================================================================
  25. Func _ProcessGetName( $i_PID )
  26.     If Not ProcessExists($i_PID) Then
  27.         SetError(1)
  28.         Return ''
  29.     EndIf
  30.     Local $a_Processes = ProcessList()
  31.     If Not @error Then
  32.         For $i = 1 To $a_Processes[0][0]
  33.             If $a_Processes[$i][1] = $i_PID Then Return $a_Processes[$i][0]
  34.         Next
  35.     EndIf
  36.     SetError(1)
  37.     Return ''
  38. EndFunc   ;==>_ProcessGetName
  39.  
  40. ;===============================================================================
  41. ;
  42. ; Function Name:    _ProcessGetPriority()
  43. ; Description:      Get the  priority of an open process
  44. ; Parameter(s):     $vProcess      - PID or name of a process.
  45. ; Requirement(s):   AutoIt Beta v3.1.1.61+
  46. ;                   kernel32.dll (included with Windows)
  47. ; Return Value(s):  On Success - Returns integer corressponding to
  48. ;                   the processes's priority:
  49. ;                     0 - Idle/Low
  50. ;                     1 - Below Normal (Not supported on Windows 95/98/ME)
  51. ;                     2 - Normal
  52. ;                     3 - Above Normal (Not supported on Windows 95/98/ME)
  53. ;                     4 - High
  54. ;                     5 - Realtime
  55. ; On Failure:       Returns -1 and sets @Error to 1
  56. ; Author(s):        Matthew Tucker
  57. ;                   Valik added Pid or Processname logic
  58. ;===============================================================================
  59. ;
  60. Func _ProcessGetPriority($vProcess)
  61.     Local $i_PID = ProcessExists($vProcess)
  62.     If Not $i_PID Then
  63.         SetError(1)
  64.         Return -1
  65.     EndIf
  66.     Local $hDLL = DllOpen('kernel32.dll')
  67.     Local $aProcessHandle = DllCall($hDLL, 'int', 'OpenProcess', 'int', 0x0400, 'int', False, 'int', $i_PID)
  68.     Local $aPriority = DllCall($hDLL, 'int', 'GetPriorityClass', 'int', $aProcessHandle[0])
  69.     DllCall($hDLL, 'int', 'CloseHandle', 'int', $aProcessHandle[0])
  70.     DllClose($hDLL)
  71.     Switch $aPriority[0]
  72.         Case 0x00000040 
  73.             Return 0
  74.         Case 0x00004000 
  75.             Return 1
  76.         Case 0x00000020 
  77.             Return 2
  78.         Case 0x00008000 
  79.             Return 3
  80.         Case 0x00000080 
  81.             Return 4
  82.         Case 0x00000100 
  83.             Return 5
  84.         Case Else
  85.             SetError(1)
  86.             Return -1
  87.     EndSwitch
  88.     
  89. EndFunc  ;==>_ProcessGetPriority
  90.  
  91. ;===============================================================================
  92. ;
  93. ; Description:      Executes a DOS command in a hidden command window.
  94. ; Syntax:           _RunDOS( $sCommand )
  95. ; Parameter(s):     $sCommand - Command to execute
  96. ; Requirement(s):   None
  97. ; Return Value(s):  On Success - Returns the exit code of the command
  98. ;                   On Failure - Depends on RunErrorsFatal setting
  99. ; Author(s):        Jeremy Landes <jlandes at landeserve dot com>
  100. ; Note(s):          None
  101. ;
  102. ;===============================================================================
  103. Func _RunDOS($sCommand)
  104.     Return RunWait(@ComSpec & " /C " & $sCommand, "", @SW_HIDE)
  105. EndFunc   ;==>_RunDOS
  106.